Most types of digital hardware include the ability to configure its functionality to support a variety of applications and/or conditions. For instance, a display screen on a phone, which is normally used to display information, such as the number being dialed, incoming caller identification, phone menus, and other similar visual representations, may be configured to temporarily display the output of a camera lens on the phone while a user is in the camera function of the phone. A few other examples of configuration functions include gamma correction of cameras, port definitions for processors, and volume setting for phones.
Configurations are performed by writing control bits to registers, either from external sources or internal sources, such as flash memory within the system or on the same silicon chip as the digital hardware. The control bits are typically written by setting voltage levels on control lines to either a low or a high value. For proper operation, the configurations should stay at the set voltage levels for a designated period of time. An unintended change in the configuration is likely to cause a change in the intended operation of the target hardware element.
An example of a cause of unintended configuration change is an electrostatic discharge (ESD) near a component. An ESD can reset the configuration bits to an unwanted state. Unless the unintended change in configuration is realized, troubleshooting the operation defect is difficult.
Previous design techniques have attempted to control the occurrence of errant configuration changes by ensuring digital noise margins and restricting the range of the voltage using clamping diodes. However, these techniques are to avoid the misconfiguration and do not monitor the settings after the configuration has occurred. Other methods have been to periodically or continuously write configuration states to a memory. The memory is then read to ensure the recorded state is accurate. This method requires a component to have separate outputs to output its control-line state information to a memory. A checker must then access that memory, retrieve the data, and compare it to a standard. The bits are set when the memory is written and only used when the memory is read for use. This method requires excess hardware, steps, and time.
Therefore a need exists to overcome the problems with the prior art as discussed above.